package com.company.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/*
* 在实际开发中，强烈推荐统一所有接口的响应格式，有以下几点好处：
*   1. 前后端解耦更彻底：各个接口返回的 JSON 结构都一致，可以减少对不同接口响应数据的判断逻辑
*   2. 错误处理标准化：统一的错误码和错误信息格式便于问题排查
* */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result<T> {
    private Integer code; // 业务状态码：0表示成功，1表示失败
    private String message; // 响应提示信息
    private T data; // 响应数据

    // 无返回数据的请求成功响应
    public static <T> Result<T> success(){
        Result<T> result = new Result<>();
        result.setCode(0);
        result.setMessage("成功响应数据");
        return result;
    }

    // 有返回数据的请求成功响应
    public static <T> Result<T> success(T data){
        Result<T> result = new Result<>();
        result.setCode(0);
        result.setMessage("成功响应数据");
        result.setData(data);
        return result;
    }

    // 请求失败响应
    public static <T> Result<T> fail(String message){
        Result<T> result = new Result<>();
        result.setCode(0);
        result.setMessage(message);
        return result;
    }
}
